package com.ethink.warehouse.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ethink.warehouse.api.info.MateInventoryAdjustLogInfo;
import com.ethink.warehouse.api.info.MateInventoryAdjustLogModeInfo;
import com.ethink.warehouse.api.request.MateInventoryAdjustLogAddRequest;
import com.ethink.warehouse.api.request.MateInventoryAdjustLogQueryModeRequest;
import com.ethink.warehouse.api.request.MateInventoryAdjustLogQueryRequest;
import com.ethink.warehouse.api.request.MateInventoryAdjustLogUpdateRequest;
import com.ethink.warehouse.api.response.MateInventoryAdjustLogAddResponse;
import com.ethink.warehouse.api.response.MateInventoryAdjustLogDeleteResponse;
import com.ethink.warehouse.api.response.MateInventoryAdjustLogGetDetailResponse;
import com.ethink.warehouse.api.response.MateInventoryAdjustLogUpdateResponse;

/**
 * 库存矫正记录 Service接口
 *
 * @author default
 * @date 2022-11-17
 */
public interface MateInventoryAdjustLogService {

    /**
     * 分页查询
     *
     * @param request
     * @return
     */
    Page<MateInventoryAdjustLogInfo> queryMateInventoryAdjustLog(MateInventoryAdjustLogQueryRequest request);

    /**
     * 查询详情
     *
     * @param mateInventoryAdjustLogId
     * @return
     */
    MateInventoryAdjustLogGetDetailResponse getMateInventoryAdjustLogById(Long mateInventoryAdjustLogId);

    /**
     * 新增
     *
     * @param request
     * @return
     */
    MateInventoryAdjustLogAddResponse addMateInventoryAdjustLog(MateInventoryAdjustLogAddRequest request);

    MateInventoryAdjustLogUpdateResponse updateMateInventoryAdjustLog(MateInventoryAdjustLogUpdateRequest request);

    MateInventoryAdjustLogDeleteResponse deleteMateInventoryAdjustLog(Long id);

    void setOrderStatus(Long id, Integer orderStatus);

    Page<MateInventoryAdjustLogModeInfo> queryMateInventoryAdjustLogMode(MateInventoryAdjustLogQueryModeRequest request);

}